package com.mxw.算法之美.a11图;

import java.util.LinkedList;

/**
 * @author Administrator
 * @create 2024/7/31 14:23
 */
public class a01Graph {

    /**
     * 邻接矩阵存储：二维数组存储,浪费存储空间
     * 顶点i与顶点j之间有边，A[i][j]=1,A[j][i]=1
     *
     *
     * 邻接表存储：数组链表存储，链表改造支持快速查找的动态数据结构
     * 每个节点用数组存储，如果顶点i与顶点j之间有边，则将顶点j存储在顶点i的邻接表中
     * 顶点i与顶点j之间有边，A[I].add(j);A[j].add(i);
     */

    /**
     * 顶点的个数
     */
    private int v;

    /**
     * 邻接表
     */
    private LinkedList<Integer> adj[];


    public LinkedList<Integer>[] getAdj() {
        return adj;
    }


    public int getV() {
        return v;
    }


    /**
     * 初始化
     * @param v
     */
    public a01Graph(int v) {
        this.v = v;
        adj = new LinkedList[v];
        for (int i = 0; i < v; i++) {
            adj[i] = new LinkedList<>();
        }
    }

    /**
     * 添加边元素
     */
    public void addEdge(int s, int t) {
        adj[s].add(t);
        adj[t].add(s);
    }


}
